<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2017/8/12/012
 * Time: 16:47
 */

namespace App\Http\Traits;


trait AjaxReturn
{
    /**
     * Ajax方式返回数据到客户端
     *
     * @access protected
     * @param  mixed  $data 要返回的数据
     * @param  String $type AJAX返回数据格式
     * @return void
     */
    protected function result($data, $type = '')
    {
        if (empty($type)) {
            $type = 'JSON';
        }
        switch (strtoupper($type)) {
        case 'JSON':
            // 返回JSON数据格式到客户端 包含状态信息
            header('Content-Type:application/json; charset=utf-8');
            //                return response()->json($data);
            echo json_encode($data);
            exit;
        case 'XML':
            // 返回xml格式数据
            header('Content-Type:text/xml; charset=utf-8');
            return response()->stream(
                function () use ($data) {
                        exit(xml_encode($data));
                }
            );
        case 'JSONP':
            // 返回JSON数据格式到客户端 包含状态信息
            header('Content-Type:application/json; charset=utf-8');
            $handler = request('callback') ? request('callback') : 'jsonpReturn';
            return response()->jsonp($handler, $data);

        case 'EVAL':
            // 返回可执行的js脚本
            header('Content-Type:text/html; charset=utf-8');
            return response()->stream(
                function () use ($data) {
                        exit($data);
                }
            );
        }
    }

}
